/**
 * 
 */
package com.peycash.monitoring.persistencia.dao.impl;

import java.math.BigDecimal;
import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;

import com.peycash.monitoring.dominio.Cliente;
import com.peycash.monitoring.dominio.EstadosCliente;
import com.peycash.monitoring.persistencia.PersistenciaException;
import com.peycash.monitoring.persistencia.dao.ClienteDAO;

/**
 * @author JAMARO
 *
 */
@Repository
public class ClienteDAOImpl extends BaseDAOImpl<Cliente, BigDecimal> implements ClienteDAO {

	
	@Override
	public void updateStatusPendiente(BigDecimal id) throws PersistenciaException{
		try{
			Cliente c = this.findByPK(id);
			EstadosCliente estado = new EstadosCliente();
			estado.setIdEstadoCliente((byte)4);
			c.setEstadosCliente(estado);
			update(c);
		}catch(Exception e){
			throw new PersistenciaException("Error en updateStatusPendiente:"+e.getMessage(), e);
		}
	}
	
	@Override
	public List<Cliente> findPendientes() throws PersistenciaException{
		try{
			Criteria criteria = getSessionFactory().getCurrentSession().createCriteria(Cliente.class);
			criteria.add(Restrictions.eq("estadosCliente.idEstadoCliente", (byte)3));
			List<Cliente> list = criteria.list();
			return list;
		}catch(Exception e){
			throw new PersistenciaException("Error en findPendings:"+e.getMessage(), e);
		}
	}
	
}
